import Foundation

// 函数式编程相关

// 柯里化

// 1. 一个多参函数
func add(a: Int, b: Int, c: Int) -> Int {
    return a + b + c
}

// 2. 分解为多个单参数的函数
func curriedAdd(a: Int) -> (Int) -> (Int) -> Int {
    return { b in
        return { c in
            return a + b + c
        }
    }
}


public func demo_curriedTest() {
    let sum = curriedAdd(a: 1)(2)(3)
//    let sum2 = sum[a]
    print("curried: \(sum)")
}

